package com.lianxi.mapper;

import com.lianxi.pojo.Article;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.CrossOrigin;

import java.util.List;

@Mapper
@Repository
public interface ArticleMapper {

    //查看发表的所有文章
    List<Article> getAllArticle(
                                @Param("cid") Integer cid,
                                @Param("title") String title,
                                @Param("current") int current,
                                @Param("size") int size);

    //查看自己的文章
    List<Article> getArtByUid(@Param("title") String title,
                              @Param("uid") Integer uid,
                              @Param("state") int state,
                              @Param("current") int current,
                              @Param("size") int size);

    //查看某一篇文章
    Article getOneArt(@Param("id") Integer id);

    //添加文章到草稿箱
    int addArticleToDra(Article article);

    //添加文章到发表
    int addArticleToPub(Article article);

    //根据栏目cid获取文章
    List<Article> getArtByCid(
                              @Param("cid") int cid,
                              @Param("state") int state,
                              @Param("current") int current,
                              @Param("size") int size);

    //编辑自己的文章
    int updaArticle(Article article);

    //删除文章
    int deleArticle(@Param("aids") int[] aids);

    //只更改状态
    int updaState(@Param("aid") Integer aid, @Param("state") int state);

    //获取全部发表文章数量
    Long countPubArticle(@Param("cid") Integer cid, @Param("title") String title);

    //获取自己某状态文章的数量
    Long countMyArtByState(@Param("title") String title,
                           @Param("state") int state,
                           @Param("uid") int uid);

    //根据cid获取文章数量
    Long coutArtByCid(@Param("cid") Integer cid,
                      @Param("state") int state);

    //根据aid查找次文章状态。
    int getStateByAid(@Param("id") Integer id);

    List<Article> getAllstateBycid(int cid);

    //获取全部已发表，浏览量最高的五个文章。
    List<Article> getHotArt();

    //更新浏览量
    int updaView(@Param("id") Integer id);
}
